---@meta _

---@alias Position
---| "LEFT" 关键消息，每位用户都应接收

---@class FuBarPlugin-2.0 FuBar插件。
---@field hasIcon boolean 是否具有图标
---@field defaultPosition Position|string 默认位置
---@field defaultMinimapPosition number 默认小地图位置；取值`1~360`
---@field cannotDetachTooltip boolean 无可分离工具提示
---@field independentProfile boolean 独立配置文件
---@field hideWithoutStandby boolean 挂载时是否隐藏
---@field OnMenuRequest table 菜单请求
---
---[文档](https://web.archive.org/web/20070706031338/http://wowace.com:80/wiki/FuBarPlugin-2.0)
local FuBarPlugin = {}

---取标题
---@return string 标题
function FuBarPlugin:GetTitle() end

---取名称
---@return string 名称
function FuBarPlugin:GetName() end

---取分类
---@return string 分类
function FuBarPlugin:GetCategory() end

---设置字体大小
---@param size number 字体大小
function FuBarPlugin:SetFontSize(size) end

---取框架
---@return Button frame 框架
function FuBarPlugin:GetFrame() end

---显示
---@param panelId string 面板标识
function FuBarPlugin:Show(panelId) end

---隐藏
---@param check? boolean 检查
function FuBarPlugin:Hide(check) end

---取面板
---@return any panel 面板
function FuBarPlugin:GetPanel() end

---是否有文本颜色
---@return boolean is
function FuBarPlugin:IsTextColored() end

---切换文本颜色
function FuBarPlugin:ToggleTextColored() end

---是否附加到小地图
---@return boolean attached
function FuBarPlugin:IsMinimapAttached() end

---切换附加小地图
function FuBarPlugin:ToggleMinimapAttached() end

---更新
function FuBarPlugin:Update() end

---更新显示
function FuBarPlugin:UpdateDisplay() end

---更新数据
function FuBarPlugin:UpdateData() end

---更新文本
function FuBarPlugin:UpdateText() end

---更新提示
function FuBarPlugin:UpdateTooltip() end

---置图标
---@param path string|boolean 路径
function FuBarPlugin:SetIcon(path) end

---取图标
---@return string path 路径
function FuBarPlugin:GetIcon() end

---检查宽度
---@param force? boolean|nil 强制
function FuBarPlugin:CheckWidth(force) end

---置文本
---@param text string 文本
function FuBarPlugin:SetText(text) end

---取文本
---@return string text 文本
function FuBarPlugin:GetText() end

---是否显示图标
---@return boolean shown 显示
function FuBarPlugin:IsIconShown() end

---切换显示图标
---@return boolean shown 显示
function FuBarPlugin:ToggleIconShown() end

---显示图标
function FuBarPlugin:ShowIcon() end

---隐藏图标
function FuBarPlugin:HideIcon() end

---是否显示文本
---@return boolean shown 显示
function FuBarPlugin:IsTextShown() end

---切换显示文本
---@return boolean shown 显示
function FuBarPlugin:ToggleTextShown() end

---显示文本
function FuBarPlugin:ShowText() end

---隐藏文本
function FuBarPlugin:HideText() end

---工具提示是否已分离
---@return boolean detached 分离
function FuBarPlugin:IsTooltipDetached() end

---分离工具提示
function FuBarPlugin:DetachTooltip() end

---重新附加工具提示
function FuBarPlugin:ReattachTooltip() end
    
---取默认位置
---@return string position 位置
function FuBarPlugin:GetDefaultPosition() end

---置面板
---@param panel table 面板
function FuBarPlugin:SetPanel(panel) end

---是否按需加载
---@return boolean demand 是按需
function FuBarPlugin:IsLoadOnDemand() end

---是否禁用
---@return boolean disabled 禁用
function FuBarPlugin:IsDisabled() end

---创建基本插件框架
---@param name string 名称
---@return Button frame 基本插件框架
function FuBarPlugin:CreateBasicPluginFrame(name) end

---创建插件子框架
---@param frameType string 类型
---@param name string 名称
---@param parent any 父框架
---@return Frame frame 插件子框架
function FuBarPlugin:CreatePluginChildFrame(frameType, name, parent) end

---打开菜单
---@param frame? any 插件框架
function FuBarPlugin:OpenMenu(frame) end

---添加隐含菜单选项
---@param level? number|nil 级别
---@return any added
function FuBarPlugin:AddImpliedMenuOptions(level) end
